#ifndef FFINC_H
#define FFINC_H

#ifdef __cplusplus
extern "C" {
#endif
    #include "libavutil/avstring.h"
    #include "libavutil/time.h"
    #include "libavformat/avformat.h"
    #include "libavcodec/avfft.h"
    #include "libswscale/swscale.h"
    #include "libavutil/base64.h"
    #include "libavutil/error.h"
    #include "libavutil/opt.h"
    #include "libavutil/version.h"
    #include "libavutil/fifo.h"
    #include "libswresample/swresample.h"
    #include "SDL.h"
#ifdef __cplusplus
}
#endif

/* 最小SDL音频缓冲区大小（以样本为单位）. */
#define SDL_AUDIO_MIN_BUFFER_SIZE 512
/* 计算实际缓冲区大小，注意不要导致音频回调过于频繁 */
#define SDL_AUDIO_MAX_CALLBACKS_PER_SEC 30

/* 图像帧缓存数量 */
#define VIDEO_PICTURE_QUEUE_SIZE	3
/* 字幕帧缓存数量 */
#define SUBPICTURE_QUEUE_SIZE		16
/* 采样帧缓存数量 */
#define SAMPLE_QUEUE_SIZE           9
/* 帧队列缓存大小 */
#define FRAME_QUEUE_SIZE FFMAX(SAMPLE_QUEUE_SIZE, FFMAX(VIDEO_PICTURE_QUEUE_SIZE, SUBPICTURE_QUEUE_SIZE))
/* 音视频包队列最大大小 15M */
#define MAX_QUEUE_SIZE (15 * 1024 * 1024)
/* 队列最大包数 */
#define MIN_FRAMES 25

#endif // FFINC_H
